Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
03-10-2025

Inwerkingtreding:
03-10-2025

20.1 Wat is de solvabiliteitsratio?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 20.1
2# Parameters: ?peildatum
3# Ontologie: versie 3.0.0 of nieuwer
4
5PREFIX onz-fin: <http://purl.org/ozo/onz-fin#>
6PREFIX onz-zorg: <http://purl.org/ozo/onz-zorg#>
7PREFIX onz-g: <http://purl.org/ozo/onz-g#>
8PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
9
10SELECT ?Kental ?Waarde WHERE {
11  {
12    SELECT  (IF(SUM(IF(?jaarrekeningpost = "H Totaal Passiva", ?bedrag, 0)) = 0,
13                "Ongedefinieerd"^^xsd:string,
14             SUM(IF(?jaarrekeningpost = "D Eigen Vermogen", ?bedrag, 0)) /
15             SUM(IF(?jaarrekeningpost = "H Totaal Passiva", ?bedrag, 0))) AS ?solvabiliteitsratio)
16             
17    WHERE {
18      {
19        SELECT ?jaarrekeningpost (SUM(?bedrag_rubriek) AS ?bedrag)
20        WHERE {
21          # BIND("2024-12-31"^^xsd:date AS ?peildatum)
22          BIND(?peildatum AS ?peildatum_argument)
23          {
24            SELECT
25              (SUM(?geld_bedrag) + SUM(?saldo_waarde)/count(?saldo_waarde) AS ?bedrag_rubriek)
26              ?rubriek ?categorie
27            WHERE {
28              {
29                SELECT
30                  ?rubriek ?categorie
31                  (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde)
32                  ?peildatum_argument
33                  (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum)
34                  ?saldo_datum ?saldo
35                WHERE {
36                  # BIND("2024-12-31"^^xsd:date AS ?peildatum)
37                  BIND(?peildatum AS ?peildatum_argument)
38                  {
39                    SELECT DISTINCT ?rubriek WHERE {
40                      ?rubriek a onz-fin:Grootboekrubriek .
41                      FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
42                      FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
43                    }
44                  }
45
46                  BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
47
48                  BIND(
49                    COALESCE(
50                      # Eigen vermogen: D-categorieën
51                      IF(STRSTARTS(?rubriekCode, "0511"), "D.I", ?unbound),
52                      IF(STRSTARTS(?rubriekCode, "05413"), "D.IV", ?unbound),
53                      IF(STRSTARTS(?rubriekCode, "05311") || STRSTARTS(?rubriekCode, "05342") || STRSTARTS(?rubriekCode, "05423"), "D.V", ?unbound),
54                      IF(STRSTARTS(?rubriekCode, "05323"), "D.VI", ?unbound),
55                      IF(STRSTARTS(?rubriekCode, "0539") || STRSTARTS(?rubriekCode, "05493") || STRSTARTS(?rubriekCode, "05915"), "D.VII", ?unbound),
56                      IF(STRSTARTS(?rubriekCode, "091"), "D.VIII", ?unbound),
57                      # Overige passiva: E/F/G
58                      IF(STRSTARTS(?rubriekCode, "06"), "E", ?unbound),
59                      IF(STRSTARTS(?rubriekCode, "07"), "F", ?unbound),
60                      IF(STRSTARTS(?rubriekCode, "14") || STRSTARTS(?rubriekCode, "15"), "G", ?unbound),
61                      "other"
62                    ) AS ?categorie
63                  )
64                  FILTER(BOUND(?categorie))
65
66                  OPTIONAL {
67                    ?rubriek onz-g:isAbout ?saldo .
68                    ?saldo a onz-fin:EindSaldo ;
69                           onz-fin:heeftGeldBedrag ?saldo_bedrag ;
70                           onz-g:hasDate ?saldo_datum .
71                    FILTER (?saldo_datum <= ?peildatum_argument)
72                  }
73
74                  FILTER NOT EXISTS {
75                    ?rubriek onz-g:isAbout ?saldo2 .
76                    ?saldo2 a onz-fin:EindSaldo ;
77                            onz-g:hasDate ?saldo_datum2 .
78                    FILTER(?saldo2 != ?saldo)
79                    FILTER (?saldo_datum2 <= ?peildatum_argument && ?saldo_datum2 > ?saldo_datum)
80                  }
81                }
82              }
83
84              OPTIONAL {
85                ?grootboek_post
86                  a onz-fin:Grootboekpost ;
87                  onz-g:partOf ?rubriek ;
88                  onz-g:hasDate ?datum ;
89                  onz-fin:heeftGeldBedrag ?geld_bedrag_temp .
90                FILTER (?datum <= ?peildatum_argument && (?datum > ?begin_datum || !BOUND(?begin_datum)))
91              }
92
93              BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag)
94            }
95            GROUP BY ?rubriek ?categorie
96          }
97
98          VALUES (?categorie ?jaarrekeningpost) {
99            ("D.I"    "D Eigen Vermogen")
100            ("D.IV"   "D Eigen Vermogen")
101            ("D.V"    "D Eigen Vermogen")
102            ("D.VI"   "D Eigen Vermogen")
103            ("D.VII"  "D Eigen Vermogen")
104            ("D.VIII" "D Eigen Vermogen")
105            ("D.I"    "H Totaal Passiva")
106            ("D.IV"   "H Totaal Passiva")
107            ("D.V"    "H Totaal Passiva")
108            ("D.VI"   "H Totaal Passiva")
109            ("D.VII"  "H Totaal Passiva")
110            ("D.VIII" "H Totaal Passiva")
111            ("E"      "H Totaal Passiva")
112            ("F"      "H Totaal Passiva")
113            ("G"      "H Totaal Passiva")
114          }
115        }
116        GROUP BY ?jaarrekeningpost
117      }
118    }
119  }
120  VALUES ?Kental {
121    "Solvabiliteitsratio"
122    "Solvabiliteitsratio (%)"
123  }
124
125    BIND(
126      IF(?Kental = "Solvabiliteitsratio",
127        ?solvabiliteitsratio,
128        IF(DATATYPE(?solvabiliteitsratio) = xsd:string,
129            "Ongedefinieerd"^^xsd:string,
130            xsd:decimal(?solvabiliteitsratio) * 100
131        )
132    ) AS ?Waarde
133  )
134}
135ORDER BY ?Kental
136